﻿using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace JCW.Common
{
    /// <summary>
    /// 文件操作帮助类
    /// </summary>
    public static class FileHelper
    {
        #region 获取当前文件应用程序目录
        /// <summary>
        /// 获取当前文件应用程序目录
        /// </summary>
        /// <returns>获取当前文件应用程序路径</returns>
        /// <remarks></remarks>
        public static string GetApplicationPath()
        {
            return System.IO.Directory.GetCurrentDirectory();
        }
        #endregion

        #region 获取当前文件应用程序目录
        /// <summary>
        /// 获取当前文件应用程序目录
        /// </summary>
        /// <returns>获取当前文件应用程序路径</returns>
        /// <remarks></remarks>
        public static string GetWebAppPath()
        {
            return System.AppDomain.CurrentDomain.BaseDirectory;
        }
        #endregion

        #region 移动单个文件
        /// <summary>
        /// 移动单个文件
        /// </summary>
        /// <param name="sourceFile">原文件</param>
        /// <param name="targetFile">目标文件</param>
        public static void MoveFile(string sourceFile, string targetFile)
        {
            FileInfo fileInfo = new FileInfo(sourceFile);
            fileInfo.MoveTo(targetFile);
        }
        #endregion

        #region DeleteFile	删除文件
        /// <summary>
        /// 删除文件
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <returns>是否删除成功</returns>
        public static bool DeleteFile(string filePath)
        {
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
                return true;
            }
            return false;
        }
        #endregion

        #region 创建文件简单文件[文本文件]
        /// <summary>
        /// 创建文件简单文件
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <param name="text">文件内容</param>
        public static void CreateTextFile(string path, string text)
        {
            if (File.Exists(path))
                File.Delete(path);
            string[] tempArry = path.Split('\\');
            int fileNameLength = tempArry[tempArry.Length - 1].Length;
            string dir = path.Substring(0, path.Length - fileNameLength - 1);
            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            using (StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default))
            {
                sw.Write(text);
                sw.Flush();
                sw.Close();
            }
        }
        #endregion

        #region 获取文件后缀名
        /// <summary>
        /// 获取文件后缀名
        /// </summary>
        /// <param name="filePath">文件夹路径[全称]或url地址</param>
        /// <returns></returns>
        public static string GetExtension(string filePath)
        {
            return System.IO.Path.GetExtension(filePath).ToLower();
        }
        #endregion

        #region 获取文件名
        /// <summary>
        /// 获取文件名[包括后缀]
        /// </summary>
        /// <param name="filePath">文件夹路径[全称]或url地址</param>
        /// <returns></returns>
        public static string GetFileName(string filePath)
        {
            return System.IO.Path.GetFileName(filePath).ToLower();
        }
        #endregion

        #region 获取文件名[不包括后缀]
        /// <summary>
        /// 获取文件名[不包括后缀]
        /// </summary>
        /// <param name="filePath">文件夹路径[全称]或url地址</param>
        /// <returns></returns>
        public static string FileNameWithoutExtension(string filePath)
        {
            return System.IO.Path.GetFileNameWithoutExtension(filePath).ToLower();
        }
        #endregion
    }
}